package org.alex.farouq.exam.model.question;


import org.alex.farouq.exam.model.question.style.ChoiceListingStyle;
import org.alex.farouq.exam.model.question.style.QuestionListingStyle;
import org.alex.farouq.exam.model.question.type.QuestionType;

/**
 * 
 * @author Ahmed abdl wahab
 * @email ahmed.mail.eg@gmail.com
 * @since 7-Nov-2011
 */
public abstract class Question {
	
	private QuestionType questionType;
	private ChoiceListingStyle choiceListingStyle;
	private QuestionListingStyle questionListingStyle;

	
	public QuestionType getQuestionType() {
		return questionType;
	}


	public void setQuestionType(QuestionType questionType) {
		this.questionType = questionType;
	}


	public ChoiceListingStyle getChoiceListingStyle() {
		return choiceListingStyle;
	}


	public void setChoiceListingStyle(ChoiceListingStyle choiceListingStyle) {
		this.choiceListingStyle = choiceListingStyle;
	}


	public QuestionListingStyle getQuestionListingStyle() {
		return questionListingStyle;
	}


	public void setQuestionListingStyle(QuestionListingStyle questionListingStyle) {
		this.questionListingStyle = questionListingStyle;
	}
	
	public abstract int getSubQuestionsCount();
	public abstract int getChoiceCountAtSubQuestionsIndex(int subQuestionIndex);

}
